package net.oschina.android.app;

import java.util.LinkedList;
import java.util.List;
import java.util.Stack;

import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context;

/**
 * @author HuangWenwei
 *
 * @date 2014年9月5日
 */
public class AppManager {
	private static Stack<Activity>activityStack;
	private  List<Activity> activityList = new LinkedList<Activity>();
	private static AppManager instance;
	
	public static AppManager getInstance(){
		if(null==instance)
			instance = new AppManager();
		return instance;
	}
	
	/**
	 * 添加Activity到栈
	 *2014年8月25日
	 *@param activity
	 */
	public void addActivity(Activity activity){
		if(activityStack == null){
			activityStack = new Stack<Activity>();
		}
		activityList.add(activity);
	}
	
	/**
	 * 获取当前Activity（堆栈中最后一个压入的）
	 */
	public Activity getCurrentActivity(){
		Activity activity=activityStack.lastElement();
		return activity;
	}
	
	/**
	 * 结束指定Activity
	 *2014年8月25日
	 *@param activity
	 */
	public void finishActivity(Activity activity){
		if(activity!=null){
			activityStack.remove(activity);
			activity.finish();
			activity = null ;
		}
	}
	
	/**
	 * 退出程序
	 *2014年8月25日
	 */
	public void AppExit(){
		for(Activity activity:activityList){
			activity.finish();
		}
		activityStack.clear();
		
		android.os.Process.killProcess(android.os.Process.myPid());
		System.exit(0);
	}
}
